package main

import (
	_ "beegoProject09/models/auth"
	_ "beegoProject09/models/user"
	_ "beegoProject09/routers"
	"beegoProject09/utils"
	"fmt"
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/orm"
	_ "github.com/go-sql-driver/mysql"
	"log"
)

/*
9.48【权限管理模块】权限添加ajax功能完成
	1. authController.go 增加页面添加方法 ToAdd
	2. 路由
	3. auth-list.html 修改添加的url  53H,
	4. auth-add.html 修改static引入，95H删除admin，54H请求方法和参数列表删除，
	5. auth-add.html 90H增加权重，99H，108H,
	6. authController.go 定义获取方法1-4
    7. auth-add.html 35H前端显示，119H重新定义监听提交，33H,46h,55h,82H,99H,


9.49【权限管理模块】权限添加后端逻辑完成
	1. auth_controller.go DoAdd 逻辑
	2. 路由
	3. auth-add.html 138H( success:function)，156H(reload_list)，
	4. auth-list.html 添加urlfor判断 77h, 引入sweetalert
    5. 弹出窗问题没解决

9.50【权限管理模块】树型数据结构
9.51【权限管理模块】动态树状菜单实现
                =======变更主页菜单========
	1. models => menu.go
	2. home_controller.go Get和GetChildNode 迭代循环查询一级二级三级菜单
9.52【权限管理模块】动态树状菜单实现二

9.53【权限管理模块】动态树状菜单前端展示
	1. index.html 注释其他，取一个使用。添加循环动态菜单 48H（一级菜单），56H（二级菜单），

*/

func init() {
	user := beego.AppConfig.DefaultString("mysql::Username", "root")
	pwd := beego.AppConfig.DefaultString("mysql::Password", "Ideal123")
	host := beego.AppConfig.DefaultString("mysql::Host", "127.0.0.1")
	port := beego.AppConfig.DefaultInt("mysql::Port", 3306)
	dbName := beego.AppConfig.DefaultString("mysql::DbName", "beegoProject")

	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=true&loc=PRC",
		user, pwd, host, port, dbName)

	orm.RegisterDriver("mysql", orm.DRMySQL)
	orm.RegisterDataBase("default", "mysql", dsn)

	db, err := orm.GetDB("default")
	if err != nil {
		log.Fatal(err)
	} else if err := db.Ping(); err != nil {
		log.Fatal(err)
	}
}

func main() {
	orm.RunCommand()
	/*	orm.Debug = true*/
	beego.BConfig.WebConfig.Session.SessionOn = true

	// 未登录请求拦截
	beego.InsertFilter("/main/*", beego.BeforeRouter, utils.LoginFilter)

	// 日志
	logs.SetLogger(logs.AdapterMultiFile, `{"filename":"logs/beego.log","separate":["error","info","debug"]}`)

	beego.Run()
}
